// 目录操作(文件夹操作)；
const fs = require('fs');
// 1. 创建一个目录 mkdir
// 异步创建目录
// 0777: 权限的控制 ---》 0 代表八进制  第一个7所有者 第二个7 组权限  第三个7，所有人
// 0 代表八进制
// 7 = 1 + 2 + 4; 1:可执行  2.可写  4.可读
// fs.mkdir('./uploads',0777,err=>{
//     if(err) {
//         return console.log(err);
//     }console.log('创建成功');
// })

// 同步创建目录
// try {
//     fs.mkdirSync("./test", 0777);
//     console.log("创建成功");
// } catch (err) {
//     console.log(err);
// }

// 2.读取目录  ：会读取目录里的文件及文件夹，读取一层目录,读取的内容会放在一个数组里
// 异步读取目录
// fs.readdir("./uploads",(err,data)=>{
//     if(err){
//         return console.log(err);
//     }
//     console.log(data);
// })


// 同步读取目录
// try {
//     let res = fs.readdirSync("./uploads")
//     console.log(res);
// } catch (err) {
//     console.log(err)
// }

// 3.删除目录:只能删除空目录
// 异步删除非空目录
// fs.rmdir("./uploads",err=>{
//     if(err){
//         return console.log(err);
//     }
//     console.log("删除成功");
// })


// 异步删除空目录
// fs.rmdir("./test",err=>{
//     if(err){
//         return console.log(err);
//     }
//     console.log("删除成功");
// })

// 4.修改目录：修改目录名称
// fs.rename("./uploads","mydirtest",err=>{
//     if(err){
//         return console.log(err);
//     }
//     console.log("修改成功");
// })

// 5.判断目录是否存在 existsSync

// if(!fs.existsSync("./mytest")){ //如果目录不存在那么就创建一个mytest目录
//     fs.mkdirSync("./mytest");
// }

// fs.writeFileSync("./mytest/index.txt","hello");


// 6.判断是否是一个目录
// 第一步： 获取目录的详细信息
let stat =  fs.statSync("./mytest");
console.log(stat);
// 第二部： 通过详细信息判断是否是一个文件夹
console.log(stat.isDirectory());


// 思考 ： 如何删除非空目录： 先删除文件 ，然后再删除目录，递归
// 注意：把代码备份下 
